Micron Document
NexusPi Git Node


Displaying Raw • Download

lib/microReticulum/src/Cryptography/HKDF.cpp copilot/add-rtnode-configuration-options (9529fa8a) Text, 695 B

Tff7b72#Tff7b72include T8b949e"HKDF.h"

Tff7b72#Tff7b72include T8b949e<HKDF.h>
Tff7b72#Tff7b72include T8b949e<SHA256.h>

Tff7b72using Tff7b72namespace T7ee787RNSTb4b4b4;

Tff7b72const Te6edf3Bytes Td2a8ffRNS::Cryptography::hkdfTb4b4b4(Tffa657size_t Te6edf3lengthTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3derive_fromTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3salt T8b949e/*= {Bytes::NONE}*/Tb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3context T8b949e/*= {Bytes::NONE}*/Tb4b4b4) Tb4b4b4{

Tff7b72if Tb4b4b4(Te6edf3length Tff7b72<Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Te6edf3stdTff7b72:Tff7b72:Te6edf3invalid_argumentTb4b4b4(Ta5d6ff"Ta5d6ffInvalid output key lengthTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72if Tb4b4b4(Tff7b72!Te6edf3derive_fromTb4b4b4) Tb4b4b4{
Tff7b72throw Te6edf3stdTff7b72:Tff7b72:Te6edf3invalid_argumentTb4b4b4(Ta5d6ff"Ta5d6ffCannot derive key from empty input materialTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Te6edf3HKDFTff7b72<Te6edf3SHA256Tff7b72> Te6edf3hkdfTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3saltTb4b4b4) Tb4b4b4{
Te6edf3hkdfTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3derive_fromTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3derive_fromTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3saltTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3saltTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72else Tb4b4b4{
Te6edf3hkdfTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3derive_fromTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3derive_fromTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3Bytes Te6edf3derivedTb4b4b4;
Te6edf3hkdfTb4b4b4.Te6edf3extractTb4b4b4(Te6edf3derivedTb4b4b4.Te6edf3writableTb4b4b4(Te6edf3lengthTb4b4b4)Tb4b4b4, Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3derivedTb4b4b4;
Tb4b4b4}

Served by rngit 1.4.2 - Generated in 0.01s